dbccc97f6416980beca5335e9e546f57d3bfeeca,src/main/java/water/fvec/NewChunk.java,NewChunk,append2slowd,#,162
Before Change
throw new ArrayIndexOutOfBoundsException(_len);
assert _ls==null;
boolean sparse = _id != null ||_ds == null;
_ds = _ds==null ? MemoryManager.malloc8d(4) : MemoryManager.arrayCopyOf(_ds,_len<<1);
if(sparse)
_id = _id==null ? MemoryManager.malloc4(4) : MemoryManager.arrayCopyOf(_id,_len<<1);
}
After Change
if( _len > Vec.CHUNK_SZ )
throw new ArrayIndexOutOfBoundsException(_len);
assert _ls==null;
if(_ds != null && _ds.length > 0){
if(_id == null){ // check for sparseness
int nzs = 0; // assume one non-zero for the element currently being stored
for(double d:_ds)if(d != 0)++nzs;
if((nzs+1)*MIN_SPARSE_RATIO < _len2)
set_sparse(nzs);
} else _id = MemoryManager.arrayCopyOf(_id, _len << 1);
_ds = MemoryManager.arrayCopyOf(_ds,_len<<1);
} else _ds = MemoryManager.malloc8d(4);
assert _len == 0 || _ds.length > _len:"_ds.length = " + _ds.length + ", _len = " + _len;
}
// Slow-path append data